home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD017a.dsk / GAME1.bas < prev    next >
BASIC Source File  |  2003-06-12  |  8KB  |  164 lines

  1. 1  HOME : DIM V$(26),N$(94),I$(5),AZ$(15),IT$(15),AZ(15),P$(4)
  2. 2  PRINT  CHR$(4);"OPEN VERBS": PRINT  CHR$(4);"READ VERBS"
  3. 3  FOR X = 1 TO 26: INPUT V$(X): NEXT 
  4. 4  PRINT  CHR$(4);"CLOSE VERBS"
  5. 5  PRINT  CHR$(4);"OPEN PLACES": PRINT  CHR$(4);"READ PLACES": FOR X = 0 TO 4: INPUT P$(X): NEXT : PRINT  CHR$(4);"CLOSE PLACES"
  6. 6  PRINT  CHR$(4);"OPEN NOUNS": PRINT  CHR$(4);"READ NOUNS": FOR X = 1 TO 94: INPUT N$(X): NEXT : PRINT  CHR$(4);"CLOSE NOUNS"
  7. 7  PRINT  CHR$(4);"OPEN ITEMS": PRINT  CHR$(4);"READ ITEMS"
  8. 8  FOR X = 0 TO 11: INPUT IT$(X): NEXT 
  9. 9  PRINT  CHR$(4);"CLOSE ITEMS"
  10. 10  FOR I = 771 TO 789: READ A: POKE I,A: NEXT 
  11. 11 AZ$(1) = IT$(4):AZ$(2) = IT$(5):AZ$(3) = IT$(6):AZ$(4) = IT$(7)
  12. 12 AZ(1) = 4:AZ(2) = 5:AZ(3) = 6:AZ(4) = 7
  13. 13  VTAB 21: HTAB 1
  14. 14 I$(1) = IT$(1):I$(2) = IT$(3)
  15. 16  HGR 
  16. 18  DATA  173,48,192,136,208,4,198,1,240,8,202,208,246,166,0,76,3,3,96
  17. 20 L = 26624: GOSUB 100: CALL 36400
  18. 30  GOSUB 52: GOTO 135
  19. 52  FOR YX = 1 TO 9: IF AZ(YX) >2  THEN  ON AZ(YX) GOSUB 58,58,54,65,72,82,96,60,57: GOSUB 120: CALL 36361
  20. 53  NEXT : RETURN 
  21. 54 L = 27143: GOSUB 100:X = 100:Y = 135: RETURN 
  22. 57 L = 28146: GOSUB 100:X = 256:Y = 126: RETURN 
  23. 60 L = 28085: GOSUB 100:X = 220:Y = 140: RETURN 
  24. 65 L = 26883: GOSUB 100:X = 200:Y = 95: RETURN 
  25. 72 L = 26935: GOSUB 100:X = 230:Y = 120: RETURN 
  26. 82 L = 26996: GOSUB 100:X = 30:Y = 120: RETURN 
  27. 96 L = 27088: GOSUB 100:X = 140:Y = 130: RETURN 
  28. 100 LL = L - INT(L/256) *256:LH =  INT(L/256)
  29. 110  POKE 36352,LL: POKE 36353,LH: RETURN 
  30. 120  POKE 36354,X -(X >255) *256: POKE 36355,X >255: POKE 36356,Y: RETURN 
  31. 135  PRINT N$(1)
  32. 136  GOSUB 140: GOTO 220
  33. 140  PRINT N$(2);
  34. 145  VTAB  PEEK(37) +1: HTAB 23: CALL  -868: GET A$
  35. 150 Z =  ASC(A$) -64
  36. 152  IF Z =  -51  AND SW = 0  THEN  POKE  -16303,0:SW = 1: GOTO 145
  37. 153  IF Z =  -51  THEN  POKE  -16304,0:SW = 0: GOTO 145
  38. 155  IF Z <1  OR Z >26  THEN 145
  39. 156  IF V$(Z) = "X"  THEN 145
  40. 200  VTAB  PEEK(37) +1: HTAB 23: PRINT V$(Z);
  41. 205  VTAB  PEEK(37) +1: HTAB  PEEK(36) +2: INPUT "";B$
  42. 210  IF B$ = ""  THEN ZZ =  PEEK(37): POKE 37,ZZ -1: GOTO 145
  43. 211  IF Z = 9  THEN  GOSUB 1020:S = 1
  44. 213  IF Z = 17  THEN  GOTO 1140
  45. 215  RETURN 
  46. 220  IF Z = 7  THEN  GOSUB 1000:S = 1: IF GT = 1  THEN GT = 0:S = 0: GOTO 20
  47. 225  IF Z = 4  THEN  GOSUB 1030:S = 1: IF CZ = 1  THEN CZ = 0:S = 0: GOTO 20
  48. 227  IF Z = 12  OR Z = 18  THEN  GOSUB 1060:S = 1
  49. 230  IF Z = 5  OR Z = 14  OR Z = 23  THEN  GOSUB 1080:S = 1
  50. 231  IF Z = 21  THEN  GOSUB 1090
  51. 232  IF Z = 19  THEN S1 = 0: GOTO 260
  52. 240  IF S = 0  THEN  GOSUB 250
  53. 242 S = 0: GOTO 136
  54. 250  PRINT N$(3): RETURN 
  55. 251  GOTO 136
  56. 260  PRINT N$(4)
  57. 261  IF L1 = 1  THEN  IF W1 = 0  OR W1 =  -2  OR W1 = C1  OR W1 = C2  THEN L = 27228: GOSUB 100: CALL 36400: GOTO 264
  58. 262  IF  ABS(W1) = 1  THEN  GOSUB 1110: IF L1 = 1  THEN  GOTO 264
  59. 263 L = 27222: GOSUB 100: CALL 36400
  60. 264  PRINT N$(5): IF W1 =  -2  THEN  PRINT N$(6)
  61. 265  GOSUB 140
  62. 266  IF Z = 21  THEN  GOSUB 997: GOSUB 1094: IF C$ = N$(7)  THEN 261
  63. 267  IF Z = 21  AND S1 = 1  THEN  IF C$ = N$(8)  OR C$ = N$(9)  THEN  PRINT N$(10): GOTO 264
  64. 268  IF Z = 21  THEN  GOSUB 1130:S = 1: IF C$ = N$(11)  THEN  GOSUB 1120
  65. 269 GT = 0: IF Z = 21  AND W1 =  -2  THEN  IF C$ = N$(12)  THEN  PRINT N$(13)
  66. 271  IF Z = 19  AND S1 = 1  AND W1 = 0  THEN S1 = 0: GOTO 261
  67. 273  IF Z = 14  AND S1 = 0  AND W1 = 0  THEN S1 = 1: GOTO 261
  68. 275  IF Z = 12  OR Z = 18  THEN  PRINT N$(14):S = 1
  69. 281  IF Z = 23  AND W1 = 1  THEN  IF C1 < >1  THEN  PRINT N$(15): GOTO 264
  70. 282  IF Z = 23  AND W1 =  -1  THEN W1 = 0: GOTO 261
  71. 283  IF Z = 23  AND W1 = 0  AND S1 = 0  THEN W1 = 1: GOTO 261
  72. 284  IF Z = 23  AND W1 = 1  AND C1 = 1  THEN W1 = 2: GOTO 330
  73. 285  IF Z = 5  AND W1 = 0  AND S1 = 0  THEN W1 =  -1: GOTO 261
  74. 287  IF Z = 5  AND W1 = 1  THEN W1 = 0: GOTO 261
  75. 289  IF Z = 5  AND W1 =  -1  THEN  IF C2 < > -1  THEN  PRINT N$(15): GOTO 264
  76. 292  IF Z = 5  AND W1 =  -1  THEN W1 =  -2: GOTO 261
  77. 296  IF W1 =  -2  AND Z = 23  THEN W1 =  -1: GOTO 261
  78. 300  IF Z = 4  THEN  GOSUB 1030:S = 1: IF CZ = 1  THEN AZ(YZ) = 0:AZ$(YZ) = "":CZ = 0: PRINT N$(16): IF C$ = N$(7)  THEN L1 = 0: GOTO 261
  79. 302  IF Z = 7  THEN  PRINT N$(17): GOTO 264
  80. 303  IF L1 < >1  THEN  IF Z = 26  OR Z = 15  THEN  PRINT N$(18):S = 1: GOTO 320
  81. 304  IF Z = 26  THEN  IF B$ = "DOOR"  THEN  IF  ABS(W1) = 1  THEN  PRINT N$(19):S = 1
  82. 306  IF Z = 15  THEN  IF W1 = 1  AND U1 = 1  THEN  PRINT N$(20):C1 = 1: GOTO 261
  83. 308  IF Z = 15  THEN  IF W1 =  -1  AND U2 = 1  THEN  PRINT N$(20):C2 =  -1: GOTO 261
  84. 310  IF Z = 15  AND  ABS(W1) = 1  THEN  PRINT N$(21):S = 1
  85. 311  IF Z = 15  AND  ABS(W1) < >1  THEN  PRINT N$(22):S = 1
  86. 315  IF Z = 5  OR Z = 14  OR Z = 19  OR Z = 23  THEN  GOSUB 1080:S = 0: GOTO 264
  87. 320  IF S = 0  THEN  GOSUB 250
  88. 322 S = 0: GOTO 264
  89. 330  PRINT : PRINT : PRINT : PRINT N$(23)
  90. 331 SZ =  -2:Z1 = 199:Z2 = 1: GOSUB 332: GOTO 370
  91. 332  HGR : POKE 253,1: POKE 254,102: POKE 252,0: POKE 4,1
  92. 334  FOR X = Z1 TO Z2  STEP SZ
  93. 336 SD = X/35
  94. 338  POKE 255,0: POKE 5,SD
  95. 340  GOSUB 360
  96. 342  CALL 16400
  97. 344  POKE 0,X/2: POKE 1,5:QT =  PEEK( -16336) + PEEK( -16336): CALL 771:QT =  PEEK( -16336)
  98. 346  HCOLOR= 0: POKE 255,1: GOSUB 360
  99. 348  CALL 16400
  100. 350  NEXT 
  101. 355  RETURN 
  102. 360  POKE 249,X -(X >255) *256: POKE 250,X >255: POKE 251,30: RETURN 
  103. 370  PRINT  CHR$(4);"BLOAD CHAIN,A520"
  104. 380  CALL 520"GAME2"
  105. 997 C$ = B$: IF  LEN(B$) <4  THEN C$ = B$ +"XXXX"
  106. 998 C$ =  LEFT$(C$,4): RETURN 
  107. 1000  GOSUB 997
  108. 1001  FOR X = 1 TO 9: IF  LEFT$(C$,4) =  LEFT$(AZ$(X),4)  THEN  GOSUB 1010:AZ$(X) = "":AZ(X) = 0: PRINT "O'K":GT = 1: RETURN 
  109. 1002  NEXT 
  110. 1004  IF C$ = N$(8)  OR C$ = N$(9)  THEN  IF W1 = 0  THEN  PRINT N$(35): RETURN 
  111. 1008  PRINT N$(36): RETURN 
  112. 1010  FOR Y = 1 TO 5: IF I$(Y) = ""  THEN I$(Y) = AZ$(X): RETURN 
  113. 1012  NEXT : PRINT N$(37): POP : RETURN 
  114. 1020  FOR X = 1 TO 5: IF I$(X) < >""  THEN  PRINT I$(X)
  115. 1022  NEXT : RETURN 
  116. 1030  GOSUB 997
  117. 1031  IF C$ =  LEFT$(IT$(1),4)  THEN  PRINT N$(38): RETURN 
  118. 1032  FOR Y = 1 TO 5
  119. 1033  IF C$ =  LEFT$(I$(Y),4)  THEN  GOSUB 1040
  120. 1034  NEXT Y: PRINT N$(39): RETURN 
  121. 1040  FOR YX = 0 TO 9: IF I$(Y) = IT$(YX)  THEN  GOSUB 1050
  122. 1042  NEXT YX: RETURN 
  123. 1050  FOR YZ = 1 TO 8: IF AZ(YZ) = 0  THEN AZ(YZ) = YX:AZ$(YZ) = IT$(YX): PRINT "0'K":I$(Y) = "": POP : POP :CZ = 1: RETURN 
  124. 1052  NEXT YZ: RETURN 
  125. 1060  GOSUB 997
  126. 1061  FOR Y = 1 TO 3
  127. 1062  IF C$ =  LEFT$(P$(Y),4)  THEN  PRINT  MID$ (P$(Y),6, LEN(P$(Y)));: GOTO 1065
  128. 1064  NEXT : GOTO 1068
  129. 1065  PRINT " WITH ": FOR Y = 1 TO 9: IF AZ$(Y) < >""  THEN  PRINT AZ$(Y);" ";
  130. 1066  NEXT : PRINT : RETURN 
  131. 1068  IF C$ = N$(8)  OR C$ = N$(9)  THEN  PRINT N$(40): RETURN 
  132. 1070  FOR Y = 1 TO 5: IF C$ =  LEFT$(IT$(4),4)  THEN  IF I$(Y) = IT$(4)  THEN  PRINT N$(41): RETURN 
  133. 1071  NEXT 
  134. 1072  FOR Y = 1 TO 5: IF C$ =  LEFT$(I$(Y),4)  THEN  PRINT N$(42): RETURN 
  135. 1073  NEXT 
  136. 1075  FOR Y = 1 TO 9: IF C$ =  LEFT$(AZ$(Y),4)  THEN  PRINT N$(43): RETURN 
  137. 1076  NEXT 
  138. 1078  PRINT N$(44): RETURN 
  139. 1080  PRINT N$(45): RETURN 
  140. 1090  GOSUB 997
  141. 1092  IF C$ = N$(8)  OR C$ = N$(9)  THEN  POP :S1 = 1: GOTO 260
  142. 1094  IF C$ = N$(7)  THEN  GOSUB 1100
  143. 1096  RETURN 
  144. 1100  FOR X = 1 TO 5
  145. 1102  IF C$ =  LEFT$(I$(X),4)  THEN  PRINT N$(46):L1 = 1:S = 1: RETURN 
  146. 1104  NEXT : PRINT N$(39):S = 1: RETURN 
  147. 1110  PRINT N$(47)
  148. 1111  IF L1 < >1  THEN  RETURN 
  149. 1112 L = 27228: GOSUB 100: CALL 36400:L = 27359: GOSUB 100:X = 110:Y = 58: GOSUB 120: CALL 36361
  150. 1116  RETURN 
  151. 1120  IF W1 = 0  THEN  PRINT N$(48): RETURN 
  152. 1121  IF GT < >1  THEN  RETURN 
  153. 1122  IF L1 < >1  THEN  PRINT N$(49): RETURN 
  154. 1123  IF W1 = 1  THEN U1 = 1
  155. 1124  IF W1 =  -1  THEN U2 = 1
  156. 1126  PRINT N$(50): RETURN 
  157. 1130  IF C$ = "KEYX"  THEN C$ = N$(11)
  158. 1131  IF W1 =  -2  AND C$ = N$(12)  THEN  RETURN 
  159. 1132  FOR Y = 1 TO 5: IF C$ =  LEFT$(I$(Y),4)  THEN GT = 1: RETURN 
  160. 1133  NEXT : PRINT N$(39): RETURN 
  161. 1140 L = 26624: GOSUB 100: CALL 36400: PRINT N$(51)
  162. 1144  PRINT N$(52);: GET A$: IF A$ = "Y"  THEN  CLEAR : PRINT : GOTO 1
  163. 1148  IF A$ = "N"  THEN  PRINT  CHR$(4)"RUN KICK.IT.OFF"
  164. 1150  PRINT : GOTO 1144